package cc.shacocloud.redis.study.queue.message;

public interface MessageQueueConsumer extends MessageHandle {

    /**
     * 获取一条消息
     *
     * @return 消息，如果队列中没有消息可能返回{@code null}
     */
    default MessageConsumerMo getMessage() {
        return batchGetMessage(1);
    }

    /**
     * 批量获取消息
     *
     * @param batchSize 获取消息的数量
     * @return 消息，消息数量小于等于 {@code batchSize}，如果队列中没有消息可能返回{@code null}
     */
    MessageConsumerMo batchGetMessage(int batchSize);

    /**
     * 添加队列消费者
     *
     * @param consumer 消息消费者
     */
    void addConsumer(MessageConsumer consumer);

}
